package com.ruoyi.flow.service;

import com.ruoyi.flow.domain.Instance;
import com.ruoyi.flow.domain.Trans;
import com.ruoyi.flow.entity.FireContext;
import com.ruoyi.flow.entity.machine.Flow;

import java.util.List;

public interface FlowInstanceService {

    Instance getInstance(String instanceId);

    List<Trans> getTransList(String instanceId);

    List<Trans> getTransLogList(String instanceId);


    /**
     * 新增流程实例
     *
     * @param flow
     * @return
     */
    Instance addInstance(Flow flow);

    /**
     * 新增流转记录
     *
     * @param fireContext
     */
    Trans addTransLog(FireContext fireContext);

    /**
     * 新增流转
     *
     * @param fireContext
     */
    Trans addTrans(FireContext fireContext);

    /**
     * 清空流转
     *
     * @param instanceId
     */
    void clearTrans(String instanceId);

    /**
     * 删除流转
     *
     * @param transId
     */
    void deleteTrans(String transId);

    /**
     * 更新流程实例
     *
     * @param instanceId
     */
    void updateInstance(String instanceId);


}
